GraalVM native-image builds based on the Kafka 2.6.0 release#31
GraalVM native-image builds based on the Kafka 2.6.0 release#31
Conversation
recommend this setting, and failing at build time is preferrable over runtime
Error: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved type during parsing: io.netty.util.internal.logging.Log4J2Logger. To diagnose the issue you can use the --allow-incomplete-classpath option. The missing type is then reported at run time when it is accessed the first time. Detailed message: Trace: at parsing io.netty.util.internal.logging.Log4J2LoggerFactory.newInstance(Log4J2LoggerFactory.java:33) Call path from entry point to io.netty.util.internal.logging.Log4J2LoggerFactory.newInstance(String): no path found from entry point to target method
|
GraalVM's The zookeeper JMX NullPointerException from 2.5.0 is fixed now, assuming the substitution has no adverse side effects. It's still very possible that the native-image zookeeper build can somehow be the culprit in Yolean/kubernetes-kafka#310. The difference now is that there shouldn't be any stacktraces in logs. The use of MemberName was fixed using |
|
This result for zookeeper with |
Yolean/kubernetes-kafka#310 because when I investigated the timeouts there I found reports that similar errors had been fixed by cleaning up (or trashing) persisted state. > Detected a direct/mapped ByteBuffer in the image heap. > A direct ByteBuffer has a pointer to unmanaged C memory, > and C memory from the image generator is not available at image run time. > A mapped ByteBuffer references a file descriptor, > which is no longer open and mapped at run time. Error: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Detected a direct/mapped ByteBuffer in the image heap. A direct ByteBuffer has a pointer to unmanaged C memory, and C memory from the image generator is not available at image run time.A mapped ByteBuffer references a file descriptor, which is no longer open and mapped at run time. To see how this object got instantiated use -H:+TraceClassInitialization. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image run time by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point. Detailed message: Trace: at parsing org.apache.zookeeper.server.persistence.FilePadding.padFile(FilePadding.java:78) Call path from entry point to org.apache.zookeeper.server.persistence.FilePadding.padFile(FileChannel): at org.apache.zookeeper.server.persistence.FilePadding.padFile(FilePadding.java:76)
that do include the .class files, I fail to get rid of: Error: Unsupported features in 2 methods Detailed message: Error: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved method during parsing: io.netty.buffer.Unpooled.wrappedBuffer(byte[]). To diagnose the issue you can use the --allow-incomplete-classpath option. The missing method is then reported at run time when it is accessed the first time. Trace: at parsing org.apache.zookeeper.server.quorum.UnifiedServerSocket$UnifiedSocket.detectMode(UnifiedServerSocket.java:265) Call path from entry point to org.apache.zookeeper.server.quorum.UnifiedServerSocket$UnifiedSocket.detectMode(): at org.apache.zookeeper.server.quorum.UnifiedServerSocket$UnifiedSocket.detectMode(UnifiedServerSocket.java:240) at org.apache.zookeeper.server.quorum.UnifiedServerSocket$UnifiedSocket.getSocket(UnifiedServerSocket.java:301) Error: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved method during parsing: org.eclipse.jetty.servlet.ServletContextHandler.<init>(int). To diagnose the issue you can use the --allow-incomplete-classpath option. The missing method is then reported at run time when it is accessed the first time. Trace: at parsing org.apache.zookeeper.server.admin.JettyAdminServer.<init>(JettyAdminServer.java:90) Call path from entry point to org.apache.zookeeper.server.admin.JettyAdminServer.<init>(String, int, int, String): at org.apache.zookeeper.server.admin.JettyAdminServer.<init>(JettyAdminServer.java:77) at org.apache.zookeeper.server.admin.JettyAdminServer.<init>(JettyAdminServer.java:71)
down after we've resolved classpath issues. The stdout prints of config are gone now, but this print remains: INFO org.apache.zookeeper.common.X509Util - Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation
initialization at runtime, for the same reason as the admincmd build: "All methods from java.lang.invoke should have been replaced during image building" This reverts commit e8da8a7.
|
At 695f84f the two initial issues were resolved and autobuild passed, pushing: Thus I merged that to master. After 695f84f we're expanding the classpath to try to, eventually, get rid of |
|
Based on scripts that worked for 2.5.0 builds fail for 2.6.0 CLIs:
I guess this is because of the upgrade from Scala 1.12 to Scala 1.13.
The zookeeper build works, but still suffers from the issue reported in #29: